home *** CD-ROM | disk | FTP | other *** search
/ APDL Eductation Resources / APDL Eductation Resources.iso / programs / maths / funcy2 / !Funcy2 / !Help < prev    next >
Encoding:
Text File  |  1994-06-17  |  37.5 KB  |  933 lines

  1. !FUNCY2 - A GRAPH PLOTTER
  2. -------------------------
  3.  
  4. This file contains information about how to use the software and the all
  5. important licence conditions.  Please read carefully but don't be scared to
  6. play with the software - it's easier to use than the instructions suggest (I
  7. think).  Please also read the file 'Notes' as it contains some valuable
  8. information.
  9.  
  10. LICENCE CONDITIONS
  11. ------------------
  12.  
  13. This shareware application is supplied "as is".  No warranty is made and I
  14. will accept no responsibility for any loss, damage or other problems arising
  15. from use of the software.  This includes data stored on any medium.  The
  16. application is NOT guaranteed to be bug free.
  17.  
  18. This software can be freely distributed as long as the following conditions
  19. are observed:
  20.  
  21. 1.  No changes can be made to any of the files within the application
  22. directory or any of its subdirectories.
  23.  
  24. 2.  No charge can be made for the software except for a reasonable amount to
  25. cover only the distribution/copying of the software ie cost of the disc, p&p
  26. and handling charges.  If you paid over the odds for this software, let me
  27. know.  Anyone charging excessively - eg trying to use 'wear and tear on
  28. their disc drive' as an excuse for charging £10+ - will be investigated...
  29.  
  30. THIS APPLICATION IS SHAREWARE...
  31. --------------------------------
  32.  
  33. You shouldn't have paid anything when you bought the software except money
  34. to cover the costs mentioned above.  However if you are still using the
  35. software after 21 days of first using it then you should register with me at
  36. the address shown below.  If this is being used in a non-domestic
  37. environment (eg a school) then I would particularly like to know.
  38.  
  39. The main benefit of registering is that I will keep you informed of further
  40. updates to the software.  I do not fix a registration fee - it's entirely at
  41. your discretion.  However the more I get, the more likely I am to develop
  42. the software and the more likely I'll implement any suggestions.  See the
  43. accompanying file 'Notes' to find out what I've done so far and how I want
  44. to improve.
  45.  
  46. I would like to take this opportunity to point out that I do not have access
  47. to any Programmers Reference Manuals.  Any monies received will go towards
  48. purchasing these and if I get even more I'll treat myself to a decent
  49. desktop editor.  If I can do this then the quality of the application should
  50. improve 100fold and many advanced features can be implemented as I'll be
  51. able to find out how to do them.  So as you can see any money sent will go
  52. into software development and not into the tills of the Godolphin Arms.
  53.  
  54. Please send any communications regarding the software, any bugs found, any
  55. information I might find useful - eg does it work on a network? - ANY
  56. SUGGESTIONS FOR IMPROVEMENT and ANY MONEY IF YOU WANT TO REGISTER to:
  57.  
  58. Richard Blythe
  59. 37 Well Way
  60. NEWQUAY
  61. Cornwall
  62. TR7 3LS
  63.  
  64. I promise to write to anyone who sends money, but be patient if during
  65. (university) term time - partly because mail will have to be forwarded.
  66.  
  67. COPYRIGHT DETAILS
  68. -----------------
  69.  
  70. WimpHeap routines © Ben Summers/Acorn Computing Magazine December 1993. 
  71. Used with kind permission of Steve Turnbull, Editor of Acorn Computing.  If
  72. you would like to use it yourself then I'm sure Europress Enterprise will be
  73. able to furnish you with the relevant back issue.
  74.  
  75. All other code and files © Richard Blythe May 1994
  76.  
  77. MANY THANKS...
  78. --------------
  79.  
  80. Firstly to everyone at Acorn Computing (and the Micro User before that) for
  81. allowing me to glean various programming titbits which almost obviate the
  82. need for PRMs (but not quite).  Thanks particularly to the Editor, Steve
  83. Turnbull, who quickly and politely responded to my request to use the
  84. WimpHeap routines in this application.  Thanks also Steve for returning an
  85. unrequired sae.
  86.  
  87. To Acorn themselves for writing applications like Maestro in Basic so that I
  88. can look at them and see how various things are done.  Also for adding the
  89. CRUNCH command to Basic which removes all spaces except necessary ones.
  90.  
  91. To all family and friends.  Maths teachers - obviously without whom I
  92. wouldn't have seen the need to write the application, let alone known how to
  93. do it!
  94.  
  95.  
  96.  
  97. INTRODUCTION
  98. ------------
  99.  
  100. !Funcy2 is an application that allows you to plot graphs of functions of y
  101. expressed in terms of x.  Once plotted these functions can be processed in a
  102. number of ways: their colour and quality can be changed; you can plot
  103. derivitives and integrals of a function and you can transform the function. 
  104. Obviously this has many uses - for example for checking that the derivitive
  105. or integral of a function is correct, for seeing where a maximum or minimum
  106. value of a graph is or simply to see how a function varies with different
  107. values of x.  A number of basic functions are provided for immediate
  108. plotting, but you can also build up a library of functions that you may
  109. require frequently.  Anyone who has used a graph plotting calculator should
  110. feel at home with !Funcy2, although some of the features are much more
  111. advanced.
  112.  
  113. NOTE
  114. ----
  115.  
  116. This manual assumes that you are familiar with the RISC OS desktop.  If not,
  117. then consult the Welcome guide which came with your machine.  Interactive
  118. help has not been implemented yet.
  119.  
  120. GETTING STARTED
  121. ---------------
  122.  
  123. To get a flavour of the software follow the following instructions.
  124.  
  125. 1. Double click on the !Funcy2 icon to load it.
  126.  
  127. 2. Click on the !Funcy2 icon on the icon bar.  A large window ('Graphs')
  128. opens filling the whole screen.  In front of this is the list of plotted
  129. functions (the 'Plot list') which initially is empty.
  130.  
  131. 3. At the bottom of the Plot list window are three buttons: 'Preset',
  132. 'User' and 'y='.  Click on 'Preset'.
  133.  
  134. 4. A new window opens - a list of functions should appear in a scrollable
  135. window.  Click on one of them so that it becomes highlighted in light blue.
  136.  
  137. 5. Make sure that the icon marked 'Reset axes' is selected (ticked).
  138.  
  139. 6. Click on 'PLOT' with Select.  After a pause, the Preset functions window
  140. should disappear and the highlighted function will appear in the Plot list. 
  141. The plot itself appears in the Graphs window.
  142.  
  143. Now you have plotted a graph you can 'play' with it in one, or more, of the
  144. following ways:
  145.  
  146. change the colour and quality of the plot - double click on the item in the
  147. Plot list.
  148.  
  149. plot derivatives, integrals or transformations of the function - highlight
  150. the item in the Plot list and click on Calculus or Transform.
  151.  
  152. change the range, axis colour and style - click menu over any of the main
  153. !Funcy2 windows or icon bar icon and select 'Range' from the 'Windows'
  154. submenu (or press F3)
  155.  
  156. plot a grid behind the graph - do this by accessing the appearance window
  157. from the Windows submenu (or press F4).  You can also move the graph around
  158. from this window.
  159.  
  160. Having done this you should have got a general feel for the software.  You
  161. can superimpose further graphs over the one you've got by clicking on one of
  162. the three plot buttons at the bottom of the Plot list window.  
  163.  
  164.  
  165.  
  166. IN DEPTH
  167. --------
  168.  
  169. Before we look at the features of !Funcy2 in detail, it is worth looking at
  170. some of the basic concepts behind the software.
  171.  
  172. The output in the Graphs window is dictated mainly by the data shown in the
  173. Plot list window.  The functions plotted, their colours and quality can all
  174. be changed from the Plot list window, or a window accessible from it.  The
  175. range of the graphs (ie the upper and lower limits of the x and y axes) and
  176. the overall appearance are changed through two windows: the range window and
  177. the appearance window.  These are accessed via a Windows menu which is
  178. invoked by clicking Menu over many of the !Funcy2 windows or by clicking
  179. menu over the icon-bar icon.  Windows can also be opened by pressing
  180. function keys.
  181.  
  182. A graph that has been entered into the Plot list is known as a 'plotted
  183. function'.  Any plotted function can be made invisible.  If this is the case
  184. it appears in the plot list in light grey rather than black.  Making a
  185. function invisible allows you to replot it later without typing the function
  186. in again - the only other way to stop a function being plotted is to delete
  187. it from the list completely.  An invisible function is still refered to as a
  188. plotted function even though it isn't actually plotted.
  189.  
  190. STANDARD CONTROLS
  191. -----------------
  192.  
  193. There are a few controls which appear in more than one window.  Therefore it
  194. makes sense to describe them once:
  195.  
  196. The colours of graphs and axes can be changed from their default black. 
  197. This is done via a set of controls (labelled 'colour') which consist of two
  198. arrows which when clicked on cycle through the 16 Wimp colours.  The current
  199. colour is shown inbetween the two arrows.
  200.  
  201. A further set of controls dictates the quality of graph or axis.  When the
  202. left-hand icon is clicked on the best quality is selected - that is a solid
  203. line.  The other icons represent dotted lines with the rightmost icon
  204. usually representing the line with the dots furthest apart.  The only
  205. exception to this is the quality control for the grid - the rightmost icon
  206. represents no grid at all.  The advantage of using a lower quality is that
  207. screen updates can be faster.  See the sections headed Appearance and Speed
  208. for more information.
  209.  
  210. THE WINDOWS SUB-MENU
  211. --------------------
  212.  
  213. This is a feature that is accessed from many of the windows in !Funcy2. 
  214. Sometimes it is the only menu available from a window, other times it is a
  215. submenu.  Either way it indicates currently open windows with a tick.  If
  216. you select a window from the menu that is closed it will be opened at the
  217. front of the pile.  Otherwise the window will be closed.
  218.  
  219. You can also use function keys to open or close windows, however these only
  220. work if any !Funcy2 window has a yellow title bar or one of the following
  221. windows is open: graphs, plot list, preset functions.
  222.  
  223. The windows that can be opened or closed from this menu are:
  224.  
  225. Plot list (F1) - controls which functions are plotted and how.
  226.  
  227. Output (F2) - shows the currently visible functions is the defined range.
  228.  
  229. Axes/range (F3) - allows you to decide the extent of the range and the
  230. appearance of the axes.
  231.  
  232. Appearance (F4) - controls the overall appearance of the graph: it's
  233. position, the quality of plot and grid colour and quality.
  234.  
  235. Trace (F5) - gives a read-out of the mouse position in the graph in
  236. cartesian coordinates.
  237.  
  238. Preset functions (F6) - gives access to a set of preset functions which can
  239. be plotted setting a suitable range if required.
  240.  
  241. User functions (F7) - allows you to create your own set of functions which
  242. can then be referred to by name.
  243.  
  244. The purpose of using a menu to open these windows is so that they can be
  245. accessed from any part of the software.
  246.  
  247. THE ICON BAR
  248. ------------
  249.  
  250. The effect of clicking on the icon bar icon depends on which mouse button
  251. you use:
  252.  
  253. SELECT:  opens the plot list and the graphs (output) window so that the plot
  254. list is in front of the output which is in front of everything else.
  255.  
  256. ADJUST: has a similar effect to select except that the graphs window is
  257. opened behind any other window that is open at the time.
  258.  
  259. MENU: opens a menu which lets you find out information about the software,
  260. open windows (via the windows sub-menu, explained above) and quit the
  261. application.  If you have any unsaved work on quitting you will be asked if
  262. you really want to quit.
  263.  
  264. CREATING PLOTS
  265. --------------
  266.  
  267. The creation of a plot is done via the three icons at the bottom of the Plot
  268. list window.  Which icon you click depends on the type of function you want
  269. to plot.  Click on 'User' to plot a user function - user functions will be
  270. discussed later on.  Preset functions, like parabolas and exponential
  271. curves, can be plotted by clicking on 'Preset'.  Finally your own function
  272. can be plotted by clicking on 'y='.  You may enter up to 50 functions in the
  273. plot list.
  274.  
  275. PRESET FUNCTIONS
  276. ----------------
  277.  
  278. When opened - whether by means of the windows sub-menu, a function key-press
  279. or by clicking in the plot list window - you should see a scrollable list of
  280. preset functions with names such as square and cuberoot.  To plot a preset
  281. function, click on it so that it becomes highlighted and click on PLOT.
  282.  
  283. If the 'Reset axes' icon is ticked then a suitable range will be selected
  284. for the function when it is plotted.
  285.  
  286. When you click on PLOT the preset functions window disappears and, if open,
  287. the name of the preset function appears in the plot list.  If the graphs
  288. window is open, the plot will be calculated and drawn.  If not, open the
  289. graphs window to view the plot.
  290.  
  291. Note that once a preset function has been added to the plot list, it then
  292. behaves like a 'y=' function - see next section.
  293.  
  294. 'Y=' FUNCTIONS
  295. --------------
  296.  
  297. If you want to plot a function that is different to those in the preset
  298. functions window, click on the 'y=' icon in the plot list window.  Enter the
  299. function you want to plot - eg 2x - into the white writeable icon, and set
  300. up the colour and quality of plot as described above.  The default quality
  301. is the one set up in the appearance window. (See appearance later).  You can
  302. also decide if you want the graph to be visible or not.
  303.  
  304. Once you have done this click on OK and the plot will be added to the list
  305. and plotted if the respective windows are open.  The Solo icon can be
  306. clicked on instead of OK.  If you do this then the function you have just
  307. created will be the only visible function in the graphs window - the rest
  308. will be made invisible.
  309.  
  310. When you click on OK or Solo, the function you have entered will be checked
  311. to see if it can be evaluated.  If you get a message 'Error in definition
  312. with...' then the program is having difficulty with the function definition
  313. at the point mentioned in the error.  You will also be told if brackets
  314. don't match up.
  315.  
  316. You will be also told if you have made reference to a function which doesn't
  317. exist - that is one you haven't defined as a user function.  This may be
  318. because you haven't defined the user function yet.  In this case you should
  319. click on OK - note that the graph will be made invisible as it can't be
  320. plotted.  If you mis-typed a function name then click on the Whoops icon to
  321. correct the function definition.
  322.  
  323. FUNCTION SYNTAX
  324. ---------------
  325.  
  326. The syntax for functions is as close to written algebra as possible.  This
  327. means, for example, that multiplication signs can be omitted. 
  328. Multiplication (symbol *) and division (symbol /) is done before addition
  329. and subtraction and the power sign (^) has the highest precedence.  A
  330. function should be followed by a parameter in brackets.  If the brackets are
  331. missing then the parameter is taken as being everything up to the next
  332. explicit operator.  The following examples should give you an idea as to how
  333. the functions are evaluated.
  334.  
  335. Function as   Evaluation     Comments 
  336. typed in                     
  337. ---------------------------------------------------------------------------
  338.  
  339. 2x            2*x            Times sign inserted
  340.  
  341. 2x+3          (2*x)+3        Multiplication done first
  342.  
  343. 2x/3          (2*x)/3
  344.  
  345. 2/3x          2/(3*x)        3x is treated as a denominator as it doesn't
  346.                              contain an explicit operator (eg a * / + or -)
  347.  
  348. 2/3x+2        (2/(3*x))+2    3x+2 is not treated as a denominator because it
  349.                              does contain an explicit operator
  350.  
  351. sin(2x+3)     sin((2*x)+3)   2x+3 taken as parameter as it's in brackets
  352.  
  353. sin2*x        sin(2)*x       2 taken as parameter because explicit operator
  354.                              (*) closes bracket
  355.  
  356. sin2x+3       sin(2*x)+3     2x taken as parameter as + sign closes bracket
  357.  
  358. -x^2          (-x)^2         Negative sign is unary operator here (makes x
  359.                              negative before being squared)
  360.  
  361. 0-x^2         0-(x^2)        Minus sign is binary operator here (x is
  362.                              squared before being taken away from 0)
  363.  
  364.  
  365. If in doubt, put in brackets for everything that should be evaluated
  366. seperately.  Try taking out brackets to see if it makes any difference to
  367. the plot.
  368.  
  369.  
  370. BASIC FUNCTIONS
  371. ---------------
  372.  
  373. You can refer to any of the following BASIC functions in your definition:
  374.  
  375. ABS     Absolute value - removes the sign 
  376.  
  377. ACS     Inverse cosine
  378.  
  379. ASN     Inverse sine
  380.  
  381. ATN     Inverse tan
  382.  
  383. COS     Cosine
  384.  
  385. DEG     Converts from radians to degrees - DEG(PI)=180
  386.  
  387. EXP     Inverse log natural
  388.  
  389. INT     Integer value - removes everything after the decimal point
  390.  
  391. LOG     Log (base 10)
  392.  
  393. LN      Log natural (base e)
  394.  
  395. RAD     Converts from degrees to radians - RAD(180)=PI
  396.  
  397. RND     Random number
  398.  
  399. SGN     Returns +1 if parameter is positive, -1 if parameter is negative
  400.         and 0 if parameter is zero
  401.  
  402. SIN     Sine
  403.  
  404. SQR     Square root
  405.  
  406. TAN     Tan
  407.  
  408. The trigonometrical functions all work in radians unless you use the RAD
  409. function like this: SIN(RAD x).
  410.  
  411. OTHER BASIC KEYWORDS THAT CAN BE USED IN FUNCTION DEFINITIONS
  412. -------------------------------------------------------------
  413.  
  414. NOT, AND, DIV, EOR, MOD, OR, FALSE, PI, TRUE
  415.  
  416. Of these MOD, DIV and PI are the most useful.  MOD finds the remainder after
  417. a division whereas DIV finds the quotient.  PI is the constant 3.141592.
  418.  
  419.  
  420.  
  421. EDITING FUNCTIONS
  422. -----------------
  423.  
  424. Having created a function you may want to edit it.  To do this, highlight it
  425. in the Plot list and either double-click on it or click on edit.  This will
  426. take you to the 'y=' window even if you used the preset or user functions
  427. windows to create the plot.  Click on OK or Solo to complete the Edit, or
  428. close the window if you want to cancel the edit.
  429.  
  430.  
  431.  
  432. USER FUNCTIONS
  433. --------------
  434.  
  435. You will probably have used preset functions.  You can define your own
  436. functions that can be referred to by a name.  This can save time when
  437. entering 'y=' functions.  It also allows you to add functions or divide one
  438. function by another.
  439.  
  440. CREATING USER FUNCTIONS
  441. -----------------------
  442.  
  443. Control of user funtions is from the User functions window, opened via the
  444. windows sub-menu, by clicking User from the Plot list or by pressing F7. 
  445. The user functions window is similar to the preset functions window except
  446. you are able to create, edit and delete functions.
  447.  
  448. Initially the scrollable pane is empty - to create a user function click on
  449. Create.  In the window that opens you must enter a function name in the
  450. uppermost box and a definition in the other one.
  451.  
  452. The function name must consist only of letters and must not begin or end in
  453. 'x' as it will get confused with the variable, x.  The name will be
  454. converted so that all the letters are in lower case.  The name must also be
  455. unique - ie not the same as another user function, preset function or basic
  456. function.  You will be alerted if you do this.
  457.  
  458. The syntax of the definition is the same as that of a y= function.  The
  459. parameter of a user function is x so the definition should be in terms of x. 
  460. When you click on OK you will be alerted if the function name is illegal, if
  461. the definition cannot be evaluated or if the function would lead to
  462. recursion.  These means that when evaluated, the function definition refers
  463. to itself and an endless loop occurs, as in this example:
  464.  
  465. f(x)=2g(x) ; g(x)=f(x)+4
  466.  
  467. To evaluate f(x), g(x) must be calculated.  To get a value for g(x), f(x)
  468. must be calculated - which in turn references g(x) and so on and so forth.
  469.  
  470. PLOTTING USER FUNCTIONS
  471. -----------------------
  472.  
  473. A user function can be directly plotted by highlighting it in the pane and
  474. clicking on PLOT.  User functions can of course be referenced in y=
  475. functions, for example like this:
  476.  
  477. y=12x+6f(x)
  478.  
  479. This of course is the main reason for using user functions: you can combine
  480. functions in a number of ways and investigate the effect of changing part of
  481. the definition.
  482.  
  483. The parameter of a user function doesn't need to be just x either - it can
  484. be as complicated as you like, eg f(2x+1), f(16x/2x^2+7x) or
  485. f(g(8x+3sin(x))).  Note composite functions cannot be entered in the form
  486. fg(x) as it will be interpreted as a single function fg.  Instead use
  487. brackets or leave a space - eg f g(x) or f(g(x)).
  488.  
  489. EDITING USER FUNCTION DEFINITIONS
  490. ---------------------------------
  491.  
  492. Like y= function definitions, user function definitions can be edited by
  493. double-clicking on them in the relevant pane (ie in the User functions
  494. window), or by highlighting one and clicking on Edit.  If you change a
  495. function definition that is plotted, the graphs window will be redrawn to
  496. reflect these changes.
  497.  
  498. One of the menus available from the user functions window is a select menu
  499. which gives control over the selection (highlighting) of user functions. 
  500. The submenu contains the following options:
  501.  
  502. All - selects all user functions
  503.  
  504. Used - selects all the user functions that are involved in a plotted
  505. function
  506.  
  507. Unused - selects all the user functions that are not refered to in any of
  508. the plotted functions.
  509.  
  510. Clear - cancels the current selection
  511.  
  512. Copy - copies the selected user function (there must be only one) with the
  513. name specified in the sub-menu.  The name must be unique and not cause
  514. recursion (as above).
  515.  
  516. Delete - deletes all selected user functions.
  517.  
  518. Saving and loading of user functions will be described later.
  519.  
  520. PROCESSING PLOTTED FUNCTIONS
  521. ----------------------------
  522.  
  523. Part of the power of !Funcy2 is the ability to process the plotted functions
  524. whether they're visible or invisible.  Initially you can change the colour
  525. or quality of a function either by double-clicking on the function in the
  526. plot list window and using the controls in the 'y=' window.  Alternatively
  527. you can use the menu available from the plot list window.
  528.  
  529. THE PLOT LIST MENU
  530. ------------------
  531.  
  532. Apart from opening windows (see above) and saving (see later) you can
  533. control the selection of functions in the plot list.  In the select menu you
  534. have the following options:
  535.  
  536. All - selects everything in the plot list
  537.  
  538. Visible - selects only visible functions
  539.  
  540. Invisible - selects only invisible functions
  541.  
  542. Invert - inverts the current selection (ie unselected items made selected
  543. and vice versa)
  544.  
  545. Clear - cancels the selection
  546.  
  547. Make - leads to a further sub-menu.  It applies an effect to the currently
  548. selected function(s).  You can make the selection visible or invisible.  You
  549. can also set the colour or the quality of all the selected functions to a
  550. particular value, which is quicker than setting each one in turn.  The solo
  551. option will make the selected function(s) visible and the rest invisible.
  552.  
  553. Copy - copies the currently selected function (only works if only one
  554. function is highlighted)  If you copy a function that has derivitives,
  555. integrals or transformations you will be asked if you want those copied as
  556. well.
  557.  
  558. Delete - deletes a function.  Can also be done by clicking on delete in the
  559. plot list window.  If the function has derivitives, integrals or
  560. transformations they will be deleted as well.
  561.  
  562. FURTHER PROCESSES: CALCULUS PROCESSES
  563. -------------------------------------
  564.  
  565. The two calculus processes - integration and differentiation - can be
  566. applied to any plotted function.  To do this, highlight the function you
  567. want to integrate or differentiate (it must be the only highlighted
  568. function) and click on Calculus in the Plot list window.
  569.  
  570. From the calculus window you can select the process you want to apply.  You
  571. can also set up the quality and colour in the usual way.  Click on Solo or
  572. OK to complete the operation, or on the close icon to cancel.  Note that
  573. integral functions can take a while to be plotted.
  574.  
  575. In the plot list, a calculus process appears as Derivitive or Integral. To
  576. edit it, double click on it in the usual way.
  577.  
  578. FURTHER PROCESSES: TRANSFORMATIONS
  579. ----------------------------------
  580.  
  581. To transform a function, make sure it is the only one highlighted in the
  582. plot list and click on Transform.  The bottom half of the Transform window
  583. is familiar - the top half is complicated.  In the pane there is a list
  584. containing the transformations applied to the graph (in order) - initially
  585. of course this pane is empty.  To create a transformation, click on Create. 
  586. A default transformation will appear at the end of the list.  As the default
  587. transformation has no effect, you will want to edit it.  Highlight it by
  588. clicking on it and then use the buttons to the right of the pane to change
  589. the type of transformation.  If applicable enter a factor into the box.
  590.  
  591. Further transformations can be added to the list (to a maximum of 20) by
  592. clicking on Create again.  Make sure you highlight the function you want to
  593. edit before using the buttons to change the transformation.
  594.  
  595. The transformation that results depends on the combination of buttons
  596. pressed:
  597.  
  598. Translate + x + factor: will translate (move) the graph in the x direction
  599. by the number of units in the factor box.  A positive value will translate
  600. the graph right, a negative number will move the graph left.
  601.  
  602. Translate + y + factor: will translate the graph in the y direction by the
  603. number of units in the factor box.  A positve value will translate the graph
  604. up, a negative number will move it down.
  605.  
  606. Scale + x + factor: will stretch the graph in the x direction (from the y
  607. axis) by the factor.  A factor between 0 and 1 will contract the graph, a
  608. higher value will stretch it.
  609.  
  610. Scale + y + factor: will stretch the graph in the y direction (from the x
  611. axis) by the factor in the box.
  612.  
  613. Reflect + x: will reflect the graph horizontally - that is about the y axis.
  614.  
  615. Reflect + y: will reflect the graph vertically - that is about the x axis.
  616.  
  617. Reflect + y=x: will reflect the graph in the line y=x.  Therefore produces
  618. the inverse of the function entered.
  619.  
  620. To plot the transformation, click on OK or Solo (see y= functions for
  621. information).
  622.  
  623. Double clicking on a transformation in the plot list will take you back to
  624. this window.  There is a menu available from the transform window: it allows
  625. you to select all the transformations in the list, cancel the selection and
  626. delete the selected transformations.  Alternatively the Delete icon will let
  627. you delete the selected transformations.
  628.  
  629.  
  630.  
  631. GLOBAL SETTINGS WHICH AFFECT ALL PLOTTED GRAPHS
  632. -----------------------------------------------
  633.  
  634. There are a number of things which are set up via the range and appearance
  635. windows which affect the look of the whole graph.
  636.  
  637. RANGE AND AXIS CONTROL
  638. ----------------------
  639.  
  640. Selecting Axes/Range from the windows sub-menu or pressing F3 will open a
  641. window where you can set the extent of the graph and determine the
  642. appearance of the axes.
  643.  
  644. Both x and y axes have minimum and maximum values.  The minimum value must
  645. be lower than maximum value, but the origin need not be included in the
  646. graph's range.  The step value determines how often reference marks appear
  647. on the axes and the seperation of grid lines (see appearance).
  648.  
  649. Like individual graphs the axes can be made invisible, the colour of them
  650. can be set and the quality ranges from a solid line to one point every
  651. 'step' as defined in the step boxes.  The graph can also be labelled along
  652. the axes at intervals if label is ticked.
  653.  
  654. Clicking OK will set the range, closing the window will cancel any changes.
  655.  
  656. STORED RANGE SETTINGS
  657. ---------------------
  658.  
  659. You can store and recall up to six range settings.  Initially they are all
  660. set to the default (ie x and y from -10 to 10 with step size 2) but the
  661. current range - the one that is reflected in the graphs window - can be
  662. stored by clicking with adjust on one of the icons numbered 1 to 6 in the
  663. range window.  Note that if the entries in the range window are different
  664. from the actual range shown in the output/graphs window then the range of
  665. the graph window will be stored: to make sure that you store the correct
  666. range, click on OK in the range window with adjust before storing the range.
  667.  
  668. Recalling a range is done by clicking select on one of the 1 to 6 icons.  To
  669. make the graph assume the settings click on OK.
  670.  
  671. The function keys can also be used to store and recall ranges.  Shift+F1 to
  672. Shift+F6 recall range settings one to six respectively.  Ctrl+F1 to Ctrl+F6
  673. store ranges.  Note these have instant effect.
  674.  
  675. NB Compare changing the range with zooming - see later.
  676.  
  677. APPEARANCE
  678. ----------
  679.  
  680. This is opened with F4 or via the windows sub-menu.  The top half of the
  681. window controls the positioning and extent of the graph.  The resize arrows
  682. expand or shrink the graph in the direction shown by one step unit (as set
  683. up in the range window) - experiment to find out which arrow does what.  The
  684. move arrows moves the 'window' through which you are looking at the graph in
  685. the direction shown so that you end up looking at a different part of the
  686. graph.  Both these functions have instant effect and work even when the
  687. graphs window is closed.
  688.  
  689. The bottom half of the window lets you set up a grid. The quality buttons
  690. range from a solid line to one dot per step unit to no grid at all.  The
  691. colour selection works in the usual way.  Click on OK to set the grid or
  692. close the window to cancel.
  693.  
  694. The overall refers to the overall quality of all the plots.  Changing the
  695. overall quality affects all the graphs that have been set up with default
  696. quality.  By setting a low overall quality you can speed up plotting
  697. considerably.
  698.  
  699.  
  700.  
  701. MISCELLANEOUS
  702. -------------
  703.  
  704. THE TRACE WINDOW
  705. ----------------
  706.  
  707. This window - accessed by F5 or the windows submenu gives a readout of the
  708. current mouse position on the graph in the graphs co-ordinates.  You get
  709. very long numbers due to the resolution of the screen - on a real graph the
  710. x and y values are continous but on screen one pixel refers to a range of
  711. values.  The one given is at the centre of the pixel.  The accuracy of the
  712. readout can be toned down using the rounding functions - either in
  713. significant figures or decimal places.  Before you can set the degree of
  714. rounding you must turn it on by making the 'Round' option ticked.
  715.  
  716. THE GRAPHS WINDOW
  717. -----------------
  718.  
  719. This shows the actual plots defined in the plot list and can be opened by
  720. pressing F2, clicking with select or adjust on the icon bar or using the
  721. windows submenu.  Only the plots that have been defined as visible will be
  722. seen.  The control of axes is done via the range and appearance windows; the
  723. grid and overall quality are defined from the appearance window (see above
  724. for description).
  725.  
  726. The graphs window is designed so that at zoom factor 1:1 (see next section)
  727. the graph fills the whole screen.  If you change mode so that the screen
  728. becomes bigger or smaller, the window will be resized to take this into
  729. account.  If the screen resolution is increased the resolution of the graph
  730. increases as well - so in effect you get a better quality plot.
  731.  
  732. ZOOMING
  733. -------
  734.  
  735. By default the graph is set to fill the whole screen.  If you wanted to see
  736. the graph in more detail, you could change the range of the graph so that a
  737. smaller extent is covered.  However, you may want to be able to keep the
  738. current range extent (eg x from -5 to -3) but still see lots of detail.  For
  739. this you can zoom in on the graph so that the extent covers more than a
  740. screen's worth of space.
  741.  
  742. To do this, click menu over the graphs window, and move to the zoom
  743. sub-menu.  This works in a similar way to a zoom window in !Draw or !Paint
  744. except you can have different zoom factors in the x and y directions.  If
  745. you're not familiar with zoom boxes, the zoom factors are expressed as
  746. quotients, so 2:1 means twice as large (2/1) whereas 1:3 is a third (1/3) of
  747. the size.  You can use the arrows to change the number nearest, or enter
  748. values into the boxes directly.  The arrows have instant effect; entering
  749. values directly only comes into effect when you press Return when the caret
  750. is in one of the right-hand boxes.
  751.  
  752. If the button in the middle of the zoom window is pressed, the contents of
  753. the x and y boxes are tied so that any change you make in one appears in the
  754. other as well.  This means that the zoom factor is the same in both
  755. directions.  However if you click on the link icon so that it is not
  756. depressed, you can set the x and y zoom factors independently.
  757.  
  758. Very large and very small zoom factors are attainable but should be avoided
  759. unless you're very patient!
  760.  
  761. SAVING AND LOADING
  762. ------------------
  763.  
  764. Although there is only one filetype, different things can be saved or
  765. loaded, depending on where you drag icons from/to.
  766.  
  767. The three types of information that can be saved or loaded are:
  768.  
  769. Plotted function definitions
  770.  
  771. User function definitions
  772.  
  773. Overall information - eg range, stored ranges, grid style, zoom factor etc
  774.  
  775.  
  776.  
  777. If you save from the plot list menu, all the functions in the plot list will
  778. be saved along with the overall information. If the 'with definitions'
  779. option in the save dialogue box is ticked, all the user function definitions
  780. will be saved as well.  This means you can save everything in a single file.
  781.  
  782. If you only want to save user functions then open the User functions window,
  783. and save from the menu there.  Overall information will not be saved.
  784.  
  785.  
  786. When loading, if you drag the icon to the icon bar icon, then all
  787. information in the file will be loaded.  If you drag to the plot list
  788. window, then only plotted functions will be loaded; if you drag to the User
  789. functions window, then only user functions will be loaded.  If you drag to
  790. the graphs window, the overall information only will be loaded.  This allows
  791. you, for example, to import range settings from another file.
  792.  
  793. Note that function definitions are added to the respective lists so you
  794. never lose anything on a load.  User function definitions whose names clash
  795. will not be loaded and neither will those that would cause recursive
  796. definitions (see user functions section) to be set up.
  797.  
  798. SPEED
  799. -----
  800.  
  801. Whenever you change anything which !Funcy2 thinks might affect the overall
  802. appearance of the graph, it is recalculated, but only if the graphs window
  803. is open.  This recalculation can take some time so here are some tips on
  804. speeding things up
  805.  
  806. 1. Don't leave the graphs window open if you don't need it to be when you
  807. are changing a lot of things.
  808.  
  809. 2. Use a small zoom factor - the time taken should be halved if the zoom
  810. factor is halved.
  811.  
  812. 3. Change to a lower resolution screen mode - a y value is calculated for
  813. each pixel across the window, so the fewer pixels across the window there
  814. are the quicker updates will be
  815.  
  816. 4. Use lower quality plots - temporarily set the default quality to a very
  817. low setting to reduce the number of calculations made.
  818.  
  819. 5. Use integral functions with care - the way these are calculated means
  820. that more time is spent if the graph's origin is a long way away from the
  821. left hand side of the window and that reducing the quality doesn't help.
  822.  
  823. 6. Make functions invisible if they don't need to be plotted.
  824.  
  825. 7. If you really must, try typing *RMFaster BASIC after pressing F12 and see
  826. if it works.
  827.  
  828. 8. Finally, get a faster computer!
  829.  
  830. NOTE that medium quality grids and axes slow things down - have either the
  831. highest or the lowest.  Also avoid using small step sizes in the range
  832. window.
  833.  
  834. EXPORTING GRAPHS AS GRAPHIC IMAGES
  835. ----------------------------------
  836.  
  837. There is no facility to save files as sprites or draw files (yet) but there
  838. is a workround (which assumes you've got RiscOS 3)
  839.  
  840. 1. Set up the graphs so that the output in the graphs window is what you
  841. want and at the size you want it (as long as it isn't bigger than the
  842. screen)
  843.  
  844. 2.  Close all the windows except the output window (to make a bit of space)
  845.  
  846. 3.  If the icon bar is not visible, press Shift+F12
  847.  
  848. 4.  If !Paint is not loaded, click on the Apps icon and double click on
  849. !Paint with adjust.
  850.  
  851. 5.  Click with menu over the !Paint icon on the icon bar and select
  852. Snapshot...
  853.  
  854. 6.  If you pressed Shift+F12 in step 3, press it again.
  855.  
  856. 7.  If the graphs window takes up most of the screen, make sure that the
  857. 'whole screen' icon is ticked.
  858.  
  859. 8.  Click on OK.
  860.  
  861. 9,  If you didn't set the whole screen option, draw a box around the graphs
  862. window.
  863.  
  864. 10. A save box appears.  If the icon bar is not visible press Shift-F12
  865. again.
  866.  
  867. 11. Drag the Sprite file icon in the save box to the !Paint icon on the icon
  868. bar.
  869.  
  870. 12.  If you've got enough memory a sprite file window should open with a
  871. miniature version of the graph you have just grabbed.  Double click on it so
  872. that you can view and edit it.  You might wnat to trim off the window
  873. gadgets or change some colours etc- see the Risc OS manuals to find out how
  874. to do this.
  875.  
  876. If all you want is a Sprite file you can stop here.  However, you might want
  877. to convert your sprite file to a draw file.
  878.  
  879. 13. Close !Funcy2s output window and any of !Paints windows EXCEPT the
  880. sprite file window containing the miniature version of the graph (you don't
  881. want to get confused!)
  882.  
  883. 14. If !Draw is not loaded, click on the Apps icon and double click on !Draw
  884. with adjust.
  885.  
  886. 15. Click menu over the miniature version of the graph in the sprite file
  887. window.
  888.  
  889. 16. Move to the save box from Sprite->Save menu.  Drag the sprite icon to
  890. the !Draw icon.
  891.  
  892. 17.  A !Draw window should open containing the graph at full size.  You may
  893. need to change the page size of the draw document to be able to see the
  894. whole graph.
  895.  
  896. 18.  Use this sprite as a template over which you draw Bezier curves and
  897. straight lines to form the shape of the graph.  By zooming the !Draw window
  898. you can check that your version of the graph is close to the original.
  899.  
  900. 19.  Once you have done this, select the original sprite in the !Draw
  901. document and delete it.
  902.  
  903. 20.  The path you have just created should be left and you can then group it
  904. to form one object which can be resized, rotated, used in DTP documents with
  905. no discernable loss of quality.
  906.  
  907.  
  908.  
  909. NB I intend to reduce this 20 stage process to a single drag in a future
  910. version.  Please bear with me!
  911.  
  912.  
  913.  
  914. ENDPIECE
  915. --------
  916.  
  917. I hope that you enjoy using this application - possibly even enough that you
  918. feel like registering.  Please let me know of any bugs you encounter or of
  919. any ideas for future improvements.  I apologise if I've missed anything out
  920. in this documentation - it's taken me almost as long to write it as it did
  921. to write the application!  Also apologies if some of the instructions aren't
  922. very clear - as the software hasn't settled yet, I didn't want to write the
  923. definitive manual!
  924.  
  925. PLEASE READ THE LICENCE CONDITIONS ETC AT THE TOP OF THIS FILE
  926. --------------------------------------------------------------
  927.  
  928. PLEASE READ THE FILE 'NOTES' TO FIND OUT ABOUT THIS APPLICATION, PAST, 
  929. PRESENT AND FUTURE...
  930. ------------------------------------------------------------------------
  931.  
  932. Text (c) 1994 Richard Blythe
  933.